/*
    Copyright 2006 Andrew Wilkinson <andrew@indiegigs.co.uk>

    This file is part of libgp2x.

    libgp2x is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    libgp2x is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with libgp2x; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
*/

#include <stdio.h>

#include "gp2x.h"

int main(int argc, char* argv[]) {
    unsigned int value;

    GP2x_init(GP2x_INIT_ALL);

    while(1) {
        value = GP2x_input_poll();

        if(!value) {
            continue;
        }
        if(value & JOYSTICK_UP) { printf("UP "); }
        if(value & JOYSTICK_UPLEFT) { printf("UPLEFT "); }
        if(value & JOYSTICK_LEFT) { printf("LEFT "); }
        if(value & JOYSTICK_DOWNLEFT) { printf("DOWNLEFT "); }
        if(value & JOYSTICK_DOWN) { printf("DOWN "); }
        if(value & JOYSTICK_DOWNRIGHT) { printf("DOWNRIGHT "); }
        if(value & JOYSTICK_RIGHT) { printf("RIGHT "); }
        if(value & JOYSTICK_UPRIGHT) { printf("UPRIGHT "); }
        if(value & JOYSTICK_PUSH) { printf("PUSH "); }
        if(value & VOLUME_UP) { printf("VOLUP "); }
        if(value & VOLUME_DOWN) { printf("VOLDOWN "); }
        if(value & START) { printf("START "); }
        if(value & SELECT) { printf("SELECT "); }
        if(value & BUTTON_A) { printf("A "); }
        if(value & BUTTON_B) { printf("B "); }
        if(value & BUTTON_X) { printf("X "); }
        if(value & BUTTON_Y) { printf("Y "); }
        if(value & TRIGGER_LEFT) { printf("TL "); }
        if(value & TRIGGER_RIGHT) { printf("TR "); }

        printf("\r");
    }

    GP2x_finalize();

    return 0;
}
